Здесь есть несколько проблем.
10^15
Похоже, что вы ожидаете «^», чтобы быть оператором экспоненту, то есть десять, возведенное в 15-й мощности.
Это не так. В C и C++ «^» является побитовым эксклюзивным или оператором.
Вторая проблема заключается в том, что все значения в выражении являются целыми значениями. Это означает, что (1/(10^15))
рассчитывается следующим образом:
1) 10^15 = 5, помните, что ^
действительно побито эксклюзивный или оператор.
2) 1/5 = 0, так как эти целые значения, это целочисленное деление, поэтому вы получите значение 0.
Лучший способ исправить это использовать научные обозначения:
Научная нотация служит одновременно двум целям: одному, вы получаете правильное значение, и два, это автоматически значение с плавающей запятой, поэтому деление выполняется как деление с плавающей запятой.
Возможно, вы захотите попробовать double вместо float http://stackoverflow.com/questions/28045787/how-many-decimal-places-does-the-primitive-float-and-double-support – SnoozeTime
'1/(10^(15)) '- Это' '' не делает то, что вы думаете. – PaulMcKenzie
@PaulMcKenzie, вероятно, потому, что сайт предлагает «c» как тег, даже когда вы написали и отметили C++ уже –