online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <stdlib.h> #include <math.h> double roundToSignificantDigits(double value, int nSignificantDigits) { int normalizationDegree = (int)floor(log10(fabs(value))); // or frexp * log2 int nDigitsAfterDotNormalized = nSignificantDigits - 1; int nDigitsAfterDot = nDigitsAfterDotNormalized - normalizationDegree; double multiplier = pow(10, nDigitsAfterDot); value = floor(value * multiplier + 0.49999999999999994) / multiplier; return value; } int main() { double d1 = atof("5.50624235984287224709987640380859375e-17"); double d2 = atof("1980704062856.605712890625"); printf("%.20e\n", d1); printf("%.20e\n", roundToSignificantDigits(d1, 7)); printf("%.20e\n", (float)d1); printf("%.20e\n", (float)roundToSignificantDigits(d1, 7)); printf("%.20e\n", d2); printf("%.20e\n", roundToSignificantDigits(d2, 7)); printf("%.20e\n", (float)d2); printf("%.20e\n", (float)roundToSignificantDigits(d2, 15)); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue