考虑到除食品外的所有商品均适用10%的税.此外,进口商品还需缴纳5%的附加税.
如果音乐CD的费用是12.49.该项目的税金为1.499.如果进口香水瓶的成本为47.50,则该项目的税率为7.125
有一项政策规定,项目的税收应四舍五入到最接近的0.05.因此,1.499应四舍五入为1.5,7.125应四舍五入为7.25.
使用逻辑可以实现上述舍入要求:
(float) Math.ceil(taxAmount / 0.05f) * 0.05f;
Run Code Online (Sandbox Code Playgroud)
将税收添加到项目的成本中会给出:
音乐CD:12.49 + 1.5 = 13.99进口巧克力盒:47.50 + 7.25 = 54.65.
我面临以下输入的问题:
如果进口巧克力盒的成本是11.85,则税率为0.5925
使用舍入政策,四舍五入后的税率为0.6.
当我们添加11.85 + 0.6这两个都是浮点数时,我们得到结果为12.450001.与其他输入不同,此特定输入提供了大量小数位,而不是其他输出中的2位小数.
我尝试使用BigDecimal而不是float来存储所有值,并将比例设置为2位小数.这种方法的问题是,如果未指定舍入策略,bigDecimal将在某些情况下抛出异常.为BigDecimal提供舍入策略会导致项目的总成本和适用的税收使用提供给BigDecimal的舍入策略进行舍入,从而改变所需的输出.
我与Python和Django的工作,我有这样的问题:我有不同的变量存储对象的价格,所有的人都像一个格式350.32,182.40等...
我的问题是这些数字是字符串,但在我的函数中,我必须将它们相加才能达到总数,而 python 不会让我这样做,因为它无法对字符串求和。我试过int(), float(), format(), 和Decimal(),但它们总是给我一个只有一个十进制数或其他不正确值的值。我需要 2 个十进制数字,我需要将它们全部相加的可能性。我该怎么做?
PS:抱歉任何英语错误,我是意大利人。
在Java中,我需要在0和之间随机生成一个数字0.06.
我在这里看到另一个问题,下面的代码可以解决这个问题:
Random generator = new Random();
double number = generator.nextDouble() * .06;
Run Code Online (Sandbox Code Playgroud)
然而,这样做给了我很长的数字,0.007044013589130205而且0.03656588431980957,我认为这不是我的导师所期待的.
反正有没有生成0到0.06之间只有两位或三位小数的随机数?
我目前正在使用c ++从事与股票市场相关的项目,涉及很多浮动类型,如价格和指数.
我读了很多说你应该在货币相关算术中使用十进制浮点数. 为什么不使用Double或Float来表示货币? .NET中的decimal,float和double之间的区别?
根据我的理解,浮点数和十进制浮点数之间的区别在于指数部分被解释的基数,浮点数使用2作为基数,十进制浮点数使用10.当使用十进制浮点数时,你仍然有舍入错误,你仍然无法表达1/3 (纠正我,如果我错了),我想很有可能将某人的账户余额乘以30%然后发生轮回错误,经过几次计算后,舍入误差可能会传播得更严重.除了更大的数字范围,为什么我应该在金融算术中使用十进制浮点数?
我有一个字符串,"$4,102.33"需要转换为double.这将永远是美国.我唯一的办法是去掉了一个黑客$和,,然后转换为加倍.似乎NSFormatter只允许我转换为货币而不是转换货币.是否有内置功能或更好的方式除了删除$和,?在将其转换为双倍之前?
使用小数类型处理货币输入时,我遇到精度问题。问题出在格式化程序上。这是游乐场中最小的可重现代码:
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.isLenient = true
formatter.maximumFractionDigits = 2
formatter.generatesDecimalNumbers = true
let text = "89806.9"
let decimal = formatter.number(from: text)?.decimalValue ?? .zero
let string = "\(decimal)"
print(string)
Run Code Online (Sandbox Code Playgroud)
它打印出来89806.89999999999而不是89806.9. 然而,大多数其他数字都很好(例如8980.9)。所以我不认为这是双精度与小数的问题。
编辑:
我需要使用格式化程序的原因是有时我需要处理货币格式输入:
let text = "$89,806.9"
let decimal = formatter.number(from: text)?.decimalValue ?? .zero
print("\(decimal)") // prints 89806.89999999999
let text2 = "$89,806.9"
let decimal2 = Decimal(string: text2)
print("\(decimal2)") // prints nil
Run Code Online (Sandbox Code Playgroud) 我有一个简单的计算,使用双打,但我得到一个意想不到的结果,我不明白为什么?
import java.util.Scanner;
public class VersatileSnitSoft {
/**
* @param args
*/
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
double amount;
System.out.print("What’s the price of a CD-ROM? ");
amount = myScanner.nextDouble();
amount = amount + 25.00;
System.out.print("We will bill $");
System.out.print(amount);
System.out.println(" to your credit card.");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我输入2.99,我得到的结果是......
We will bill $27.990000000000002 to your credit card.
Run Code Online (Sandbox Code Playgroud) 我真的不明白指针指针是如何工作的.没有使用指针指针的任何方式做同样的工作?
struct customer
{
char name[20];
char surname[20];
int code;
float money;
};
typedef struct customer customer;
void inserts(customer **tmp)
{
*tmp = (customer *)malloc(sizeof(customer));
puts("Give me a customer name, surname code and money");
scanf("%s %s %d %f", (*tmp)->name, (*tmp)->surname, &(*tmp)->code, &(*tmp)->money);
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个简单的循环来计算 Swift 中的摊销时间表。
到目前为止,这是我在 Playground 上的设置:
let loanAmount: Double = 250000.00
let intRate: Double = 4.0
let years: Double = 30.0
var r: Double = intRate / 1200
var n: Double = years * 12
var rPower: Double = pow(1 + r, n)
var monthlyPayment: Double = loanAmount * r * rPower / (rPower - 1)
var annualPayment: Double = monthlyPayment * 12
Run Code Online (Sandbox Code Playgroud)
对于实际循环,我不确定如何修复下面的代码。
for i in 0...360 {
var interestPayment: Double = loanAmount * r
var principalPayment: Double = …Run Code Online (Sandbox Code Playgroud) 基本上我在考虑浮点数或字符串.
字符串:
"10.00"
"10.05"
"10.50"
"1,000"
Run Code Online (Sandbox Code Playgroud)
浮点数
10
10.05
10.5
1000
Run Code Online (Sandbox Code Playgroud)
我喜欢字符串的格式化,浮点数限制精度可能存在问题.
你会选择什么?为什么?
java ×3
swift ×3
bigdecimal ×2
currency ×2
amortization ×1
c ×1
c++ ×1
decimal ×1
django ×1
formatting ×1
int ×1
ios ×1
javascript ×1
json ×1
loops ×1
malloc ×1
nsformatter ×1
pointers ×1
python ×1
random ×1
rounding ×1
struct ×1
sum ×1
types ×1