如果一个数字有.00你怎么能删除它?

use*_*465 8 javascript numbers decimal

我一直在寻找这个答案,还有一些选择.不幸的是,没有一个对我有意义:(

我正在一个电子商务网站上工作,产品价格自动上传'.00',如果它是一个整数.我们有一些产品会显示使用的小数(即£13.50),但我们只是希望从定价中删除.00的所有实例.

如果有人需要更多相关信息,请告诉我.我知道定价来自网站的许多部分而不仅仅是一个特定的类.

Den*_*ret 18

如果你只是想删除的.00,如果它是一个字符串的结尾,那么你可以这样做

str = str.replace(/\.00$/,'');
Run Code Online (Sandbox Code Playgroud)

如果您的.00可能不在字符串的末尾,例如它"10.00 $ and 24.00€",那么就是

str = str.replace(/\.00([^\d])/g,'$1');
Run Code Online (Sandbox Code Playgroud)

以下是更多评论:

大多数情况下,数字格式化涉及许多其他要求,我们无法猜测你的是什么.

这是我的一个数字格式化函数的测试集:

//   formatFloat(100.0)     => "100"
//   formatFloat(100.0, 12) => "100"
//   formatFloat(100.1)    => "100.1"
//   formatFloat(100.1, 0) => "100"
//   formatFloat(100.7, 0) => "101"
//   formatFloat(.0434) => "0.043"
//   formatFloat(1.999999) => "2"
//   formatFloat(.0000047)     => "0"
//   formatFloat(.0000047, 6)  => "0.000005"
//   formatFloat(.0000047, 12) => "0.0000047"
//   formatFloat(undefined) => ""
//   formatFloat(NaN) => ""
Run Code Online (Sandbox Code Playgroud)

因此,如果您对我给您的解决方案不满意,请花时间确定您的完整要求.


sak*_*zai 8

最简单的:

Number(1.05)  => 1.05
Number(1.00)  => 1
Number('1.05')  => 1.05
Number('1.00')  => 1
Run Code Online (Sandbox Code Playgroud)

要么

 parseFloat('102.00 dollar') => 102
 parseInt('102.02 dollar')   => 102 see it drops .02
 parseFloat('102.02 dollar')   => 102.02 , but not this
Run Code Online (Sandbox Code Playgroud)


Zah*_*med 7

工作演示这是代码:

var amount=23.00;
if(amount % 1 == 0)
   amount=parseInt(amount,10);
Run Code Online (Sandbox Code Playgroud)