Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否使用整数/浮点/双精度来计算价格&;折扣_Java_Android_Sqlite - Fatal编程技术网

Java 是否使用整数/浮点/双精度来计算价格&;折扣

Java 是否使用整数/浮点/双精度来计算价格&;折扣,java,android,sqlite,Java,Android,Sqlite,我是android的初学者。我正在开发一个与销售相关的应用程序,我需要在其中进行大量计算。 我不知道使用哪些变量来处理价格、折扣等。 目前我将价格存储为整数。 例如,180卢比-->18000派斯&在显示时,我简单地将其除以100 但是我想显示最多两位小数点后的价格/折扣,比如150.50卢比或20.50卢比。 我应该用什么浮点数、双精度点数或其他任何数字? 请帮帮我。。。谢谢…在计算价格时使用整数:这样可以避免四舍五入问题。当你想转换成实际价格时,只需除以100。每次你想显示价格时,都要使用j

我是android的初学者。我正在开发一个与销售相关的应用程序,我需要在其中进行大量计算。 我不知道使用哪些变量来处理价格、折扣等。

目前我将价格存储为整数。 例如,180卢比-->18000派斯&在显示时,我简单地将其除以100

但是我想显示最多两位小数点后的价格/折扣,比如150.50卢比或20.50卢比。 我应该用什么浮点数、双精度点数或其他任何数字?
请帮帮我。。。谢谢…

在计算价格时使用整数:这样可以避免四舍五入问题。当你想转换成实际价格时,只需除以100。每次你想显示价格时,都要使用
java.text.NumberFormat
:你可以控制它打印的小数位数。

你有没有试过用谷歌搜索三者的差异?请阅读。处理金钱时,请始终使用BigDecimal。没有别的了。小数位数不取决于数据类型,但取决于格式:是否了解使用BigDecimal的原因?请阅读浮点:。您将遇到舍入问题。更粗体的字体可以帮助您的问题更突出…@etetnay。。是的,我没有以上格式的价格问题。但是考虑这种情况:价格=7500 PAISE和DISCONT=25%,即1875帕斯。因此,折扣金额为5625派斯。。除以它将显示56个Rs。这就是为什么我对格式感到困惑的原因。我只是想知道正确的方法。谢谢你的帮助…-)在某些情况下。。。当我使用浮动存储折扣金额时,它给出的答案是60.000001卢比。。。在java中,我希望它是60.0,2个整数之间的除法得到一个整数,所以在这种情况下,56是正常的。只需将2个整数转换为float(或double,但在这种情况下不需要额外的精度),然后将结果转换为float(或double,如果愿意的话)。它将为您提供正确的结果(56.25)。如果结果为60.000001,您有两种解决方案:只需在数字的小数部分保留两位数字,然后将其四舍五入,或者使用@NeplatnyUdaj告诉您的
BigDecimal
。非常感谢。。。。我会很快让你知道。。。谢谢