ID: 21537
Comment by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Bogus
Bug Type: Feature/Change Request
Operating System: inux, Solaris, NT, Win2000
PHP Version: 4.3.0
New Comment:
$a = 2.0;
$b = '2.0';
xxx($a, $b);
produces
2 2.0
2.0 is still converted to int(2) instead of float(2.0).
I need to know the exact input and thought the easiest way to check the
input would be to get the input as an unconverted string.
In the example of 2.0, a float of 2.0 would tell me the type and
accuracy. I would then get 3.10 as 3.10 instead of 3.1.
I have not tested floats with e notation or very long numbers. If
someone types a long number, I want to detect the long number,
recognise the number exceeds the accuracy of the default maths, and
switch to arbitrary precision mathematics.
I do not want to tell the person using my function or class, a whole
lot of rules about enclosing numbers in quotations when they contain
certain values.
Previous Comments:
------------------------------------------------------------------------
[2003-01-09 00:48:35] [EMAIL PROTECTED]
You must be doing something else wrongly:
<?php
function foo($a, $b) {
var_dump ($a, $b);
}
foo(1.0, 1.8);
?>
[derick@kossu derick]$ php bug21537.php
float(1)
float(1.8)
As you see it works fine...
Derick
------------------------------------------------------------------------
[2003-01-08 22:04:12] [EMAIL PROTECTED]
When I write a function as
xxx(1.0, 1.8);
The function receives 1 and 1.8, not 1.0 and 1.8. I tried
get_func_arg() and other tricks but the 1.0 is converted to int(1)
before it available for processing.
Could we have a language construct named:
get_func_arg_untouched_virginal_string_as_entered()
which keeps the parameter as a string?
I need to keep some numeric data in the original input format so it can
be verified as typed and passed to other systems in the original
format.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21537&edit=1