我想格式化我的数字,以便始终显示2位小数,在适用的地方进行舍入.
例子:
number display
------ -------
1 1.00
1.341 1.34
1.345 1.35
Run Code Online (Sandbox Code Playgroud)
我一直在用这个:
parseFloat(num).toFixed(2);
Run Code Online (Sandbox Code Playgroud)
但它显示1
为1
,而不是1.00
.
在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来实现这个Javascript?我显然可以使用一个函数,但我想知道是否有任何内置方法,或其他一些聪明的技术.
在JavaScript中,当从float转换为字符串时,如何在小数点后只获得2位数?例如,0.34而不是0.3445434.
我想显示一个2位小数的数字.
我以为我可以toPrecision(2)
在JavaScript中使用.
但是,如果数字是0.05
,我得到0.0500
.我宁愿保持不变.
在JSbin上看到它.
做这个的最好方式是什么?
我可以考虑编写一些解决方案,但我想(我希望)内置这样的东西?
我需要一轮例如6.688689
到6.7
,但它总是显示我7
.
我的方法:
Math.round(6.688689);
//or
Math.round(6.688689, 1);
//or
Math.round(6.688689, 2);
Run Code Online (Sandbox Code Playgroud)
但结果总是一样的7
...我做错了什么?
我试图让Delphi像Excel一样圆,但我不能.这是代码:
procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
c : currency;
begin
c := 54321.245;
s := '';
s := s + Format('Variable: %m',[c]);
s := s + chr(13);
s := s + Format(' Literal: %m',[54321.245]);
ShowMessage(s);
end;
Run Code Online (Sandbox Code Playgroud)
我正在使用设置为54321.245的货币变量,当我格式化此变量时,它使用Bankers Rounding进行舍入.但是,当我将相同的值格式化为文字时,它会舍入Excel舍入的方式.
无论是形成货币变量还是字面值,我都期待这个回合到54,321.25美元.我怎样才能确保Delphi每次都以与Excel相同的方式进行舍入?
编辑
The rounding I expect to see is as follows:
54,321.245 = 54,321.25
54,321.2449 = 54,321.24
54,431.2499 = 54,421.25
Run Code Online (Sandbox Code Playgroud)
我只使用文字来展示Delphi的不同方式.我希望在实际代码中使用变量.
注意:
如果我将变量从货币更改为扩展,则它会正确舍入
编辑#2
有人建议我不清楚我的要求,这绝对不是真的.我对我的要求有一个非常清楚的理解,我显然没有很好地解释它们.我想要的舍入方法是两位小数.当deimal部分的千分之一值> = 0.005时,我希望它四舍五入为0.01,Delphi提供的货币类型不会这样做.我也试过这个例子,使用带有money数据类型的Microsoft SQL(我假设它与Delphi的货币相同),并且SQL按照我描述的方式对它进行了轮询.
我怎样才能圆花车如0.075
达0.08
在Javascript?
我正在尝试使用javascript创建一个简单的百分比计算器.
我在控制台中尝试一个简单的计算(试试):
106 / 100 * 10
Run Code Online (Sandbox Code Playgroud)
它让我回报:
10.600000000000001
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?括号没有区别,每个数字都不会出现这种情况.我希望结果是10.6
对的吗?任何人都可以提供解释吗?这不是浏览器特定的,它发生在Chrome开发工具和firebug中.