Setting Input field to 2 decimal points (Price)
up vote
0
down vote
favorite
I am currently trying to input prices into a .txt file.
So i want it when the user input:1.1
Instead of 1.1
, I want it to become 1.10
instead. As it would look better for the table I am trying to make in the future. I would also like to round up or down if it goes more than 3 decimal places. (Thanks john1024 for the correction)
bash floating-point
|
show 3 more comments
up vote
0
down vote
favorite
I am currently trying to input prices into a .txt file.
So i want it when the user input:1.1
Instead of 1.1
, I want it to become 1.10
instead. As it would look better for the table I am trying to make in the future. I would also like to round up or down if it goes more than 3 decimal places. (Thanks john1024 for the correction)
bash floating-point
1
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
1
So...read x; printf '%.2fn' "$x"
maybe? Seehelp printf
andman 3 printf
– steeldriver
Jan 19 at 3:22
1
To store the additional zero in variablex2
:read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
2
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
2
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44
|
show 3 more comments
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am currently trying to input prices into a .txt file.
So i want it when the user input:1.1
Instead of 1.1
, I want it to become 1.10
instead. As it would look better for the table I am trying to make in the future. I would also like to round up or down if it goes more than 3 decimal places. (Thanks john1024 for the correction)
bash floating-point
I am currently trying to input prices into a .txt file.
So i want it when the user input:1.1
Instead of 1.1
, I want it to become 1.10
instead. As it would look better for the table I am trying to make in the future. I would also like to round up or down if it goes more than 3 decimal places. (Thanks john1024 for the correction)
bash floating-point
bash floating-point
edited yesterday
Rui F Ribeiro
38.6k1479128
38.6k1479128
asked Jan 19 at 2:56
pandora
35
35
1
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
1
So...read x; printf '%.2fn' "$x"
maybe? Seehelp printf
andman 3 printf
– steeldriver
Jan 19 at 3:22
1
To store the additional zero in variablex2
:read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
2
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
2
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44
|
show 3 more comments
1
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
1
So...read x; printf '%.2fn' "$x"
maybe? Seehelp printf
andman 3 printf
– steeldriver
Jan 19 at 3:22
1
To store the additional zero in variablex2
:read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
2
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
2
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44
1
1
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
1
1
So...
read x; printf '%.2fn' "$x"
maybe? See help printf
and man 3 printf
– steeldriver
Jan 19 at 3:22
So...
read x; printf '%.2fn' "$x"
maybe? See help printf
and man 3 printf
– steeldriver
Jan 19 at 3:22
1
1
To store the additional zero in variable
x2
: read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
To store the additional zero in variable
x2
: read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
2
2
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
2
2
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44
|
show 3 more comments
1 Answer
1
active
oldest
votes
up vote
0
down vote
To read in a price and coerce it to have 2 decimal places, try:
read -p "Enter the price: " var
printf -v var '%.2f' "$var"
The %.2f
format tells printf
to use two-decimal digits.
Examples:
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
Note: Bash can format numbers with decimal points but it cannot do addition, subtraction, or other arithmetic on such floating point numbers. For that, you will need other tools like awk
or bc
or zsh
.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f418142%2fsetting-input-field-to-2-decimal-points-price%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
To read in a price and coerce it to have 2 decimal places, try:
read -p "Enter the price: " var
printf -v var '%.2f' "$var"
The %.2f
format tells printf
to use two-decimal digits.
Examples:
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
Note: Bash can format numbers with decimal points but it cannot do addition, subtraction, or other arithmetic on such floating point numbers. For that, you will need other tools like awk
or bc
or zsh
.
add a comment |
up vote
0
down vote
To read in a price and coerce it to have 2 decimal places, try:
read -p "Enter the price: " var
printf -v var '%.2f' "$var"
The %.2f
format tells printf
to use two-decimal digits.
Examples:
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
Note: Bash can format numbers with decimal points but it cannot do addition, subtraction, or other arithmetic on such floating point numbers. For that, you will need other tools like awk
or bc
or zsh
.
add a comment |
up vote
0
down vote
up vote
0
down vote
To read in a price and coerce it to have 2 decimal places, try:
read -p "Enter the price: " var
printf -v var '%.2f' "$var"
The %.2f
format tells printf
to use two-decimal digits.
Examples:
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
Note: Bash can format numbers with decimal points but it cannot do addition, subtraction, or other arithmetic on such floating point numbers. For that, you will need other tools like awk
or bc
or zsh
.
To read in a price and coerce it to have 2 decimal places, try:
read -p "Enter the price: " var
printf -v var '%.2f' "$var"
The %.2f
format tells printf
to use two-decimal digits.
Examples:
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
Note: Bash can format numbers with decimal points but it cannot do addition, subtraction, or other arithmetic on such floating point numbers. For that, you will need other tools like awk
or bc
or zsh
.
answered Jan 20 at 8:22
John1024
45.7k4103118
45.7k4103118
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f418142%2fsetting-input-field-to-2-decimal-points-price%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Oh... Alright i'll edit my question. Thanks!
– pandora
Jan 19 at 3:12
1
So...
read x; printf '%.2fn' "$x"
maybe? Seehelp printf
andman 3 printf
– steeldriver
Jan 19 at 3:22
1
To store the additional zero in variable
x2
:read x; printf -v x2 '%.02f' "$x"
– John1024
Jan 19 at 3:40
2
@John1024, that sounds like an answer to me.
– ilkkachu
Jan 19 at 9:48
2
Possible duplicate of AWK with one decimal place
– αғsнιη
Jan 20 at 8:44