1
$bal = (int)$balance;
echo is_int($bal);

$ balanceはfile_get_contents($ webservice);からのものです。

文字列を整数に変換するために(int)を使用しています。is_intは、検証としてtrueの場合は1を返します。

$ balの値は常に負であるため、次の計算を行って正にします。

$bal = $bal * -1;

これを行うと、以前は$ balが-150であったとしても、値は0になります。

EDIT 1 var_dump($ balance)が返されます:string(110) "-399.6000"

編集2XMLパーサーを使用して変数を配列に割り当てました-以下の私の答えを参照してください。

4

8 に答える 8

3

I recommend PHP's abs()-function if you want to make sure that you are always dealing with a positive number:

$bal = abs($bal);
于 2010-10-18T12:07:17.877 に答える
2

var_dump出力に従って、文字列はスペースで始まります。これを使って:

$bal = intval(trim($balance));

于 2010-10-18T12:19:30.277 に答える
1

問題は、file_get_contentsを使用してWebサービスのGETメソッドと対話していたことです。

これは、変数に割り当てるときに見落としていたXMLヘッダーデータを返していました。

XMLをクリアして、必要な値だけを残すために、file_get_contentsを配列に格納し、配列値を整数に割り当てることができるPHPXML_PARSERを使用しました。

$result = file_get_contents($base);

$p = xml_parser_create();
xml_parse_into_struct($p, $result, $vals, $index);
xml_parser_free($p);  
$bal = $vals[0]['value'];
echo $bal *-1;
于 2010-10-18T12:32:06.197 に答える
0

try this to if you want to revert the sign:

$bal = $bal * (-1);

or use abs() if you want it to be always positive:

$bal = abs($bal);
于 2010-10-18T12:06:32.720 に答える
0
$bal = abs($bal);

http://php.net/manual/en/function.abs.php

于 2010-10-18T12:07:57.377 に答える
0
$balance="-150";
$bal = $balance*1;
echo $bal;

-150を与える

于 2010-10-18T12:08:23.497 に答える
0

任意の変数の整数値を返す関数intval()を使用すると、計算が簡単になると思います。PHPマニュアルをお持ちの場合は、関数の説明をご覧ください。

于 2010-10-18T12:13:22.677 に答える
0

乗算を行った後、プログラムは$ balで何をしていますか?次のPHPスクリプトは、私のラップトップで期待どおりに機能しました。

<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>

改行を気にしなかったので、出力は「1150」です。これ以上コードを投稿できますか

于 2010-10-18T12:14:27.760 に答える